Web Services
The promise of the Internet is an open e-business platform where companies can do business spontaneously with anyone, anywhere, and anytime without requiring that companies abandon their existing software applications and infrastructures. Increasingly companies rely on the Internet to obtain loosely coupled Web services deployed by Web service providers on application-based servers, which are computers on networks that mange the networks.
Web services are business-enterprise computer applications that can be utilized singly or collectively to accomplish a wide range of intended purposes, such as determining health-care patients' eligibility for benefits, submitting health-care claims, and providing stock quotes. Web services help companies dramatically cut costs, increase revenues, and improve competitive agility by combining existing, heterogeneous systems into cross-functional, multi-company applications. For example, Web services designed for insurance companies help them rapidly automate their business processes, eliminating paper and manual touches and saving them tens of millions of dollars annually. To supply such valuable and widely needed services, Web services providers may offer multiple Web services to client businesses.
Because Web services can operate independently of a particular computer language, platform, or location, a client business and a Web service may each use different computer languages, platforms, and locations in widely distributed systems over one or more networks.
Open Web service standards have been developed for compatibility among Web service applications. A standard called SOAP (Simple Object Access Protocol) has been developed to define the format of messages exchanged among applications. The content of messages, such as a request for an action to be performed by a Web service, is currently described in WSDL (Web Services Description Language), which is an XML (Extensible Markup Language)-formatted language and which serves as a Web service's interface. Web services are cataloged in a Web based directory and infrastructure called UDDI (Universal Description, Discover and Integration), which is an Internet registry where businesses list themselves according to their services. Communications between a client business and a Web service further rely on the use of a shared transport protocol, such as HTTP (Hypertext Transport Protocol), which enables communications over the Internet.
Typically a client business employs a client application to communicate from its Web site over the Internet according to these standards, to obtain the Web services offered by a Web service provider from its server-based Web site. The Web service provider uses the same standards to reply to a client. Other known or not-yet-known Web service protocols and standards may be used for this communications.
The Web service end point is the physical location of the Web service on a server and implements the Web service interface.
Soap Envelopes
To communicate with a Web service, a client application message typically contains a SOAP envelope, which in turn contains context headers and a message body. The headers indicate such parameters as the Web service to be invoked, the identity of the sender, and the channel to be used for transmissions. The message body indicates the message being sent to the Web service, for example a request to calculate the number of patient claims at a health insurance company.
Communications Parameters
A Web service provider processes incoming and outgoing messages from client applications according to communications parameters. For example, interface parameters may be required, comprising such elements as the level of service to which the client business is entitled for that Web service;                the level of encryption to be applied to messages from and to the client application;        the timeout used when establishing communication from or to a client application; and        the number of retries to allow when establishing communication from or to a client application.        
The specific content of this interface-variables metadata may depend on context variables, comprising, for example,                the specific Web service to be used;        the specific user communicating with the Web service provider; and        the transmission channel.        
For example, different client businesses may require different parameters for interface variables. Furthermore, each client business may require different interface-variables parameters for particular users within its organization. For example, a business may require different levels of service from a Web service provider for a system administrator, an organization leader, and a user, and may want some interface-variables parameters to apply to all its employees and others to be open to personalization by individual employees or groups of employees.
To cite a further example of the importance of context variables, a business may require a higher level of encryption for messages transmitted over a person-operated handheld device channel than for messages over a machine-to-machine Web service channel.
Thus a large number of personalized communications parameters may need to be specified to a Web service provider for each incoming and outgoing message it handles, to enable it to identify the requirements for different client businesses and their employees. In a widely distributed system linking multiple client businesses, Web service providers, and Web services on multiple hardware and software platforms, the number of these parameters is still more greatly increased.
Prior Techniques
Client-business programming: Typically a client business manually programs its applications to specify in the message body the required communications parameters to the Web service provider, sometimes using a commercially available Web service application platform for assistance.
However, this technique is intrusive for the client businesses, since it is time-consuming and requires special and expensive programming skill, as well as knowledge of the communications parameters and their formats required by the Web service. Multiple client businesses of a Web service have to be responsible for correctly programming the required communications parameters for potentially large and changing staffs of employees and their needs, which can be burdensome and costly to them and can introduce programming errors.
Web service provider programming: Another technique is for the Web service provider to manually program its applications to specify the required communications parameters for each client business' applications and that business' employees, also sometimes using a commercially available Web service application platform, or one the Web service provider has Method and Apparatus for Dynamic Non-Intrusive Personalization of Web Services designed, for assistance.
But this technique is intrusive for the Web service provider, since it is very time-consuming for the Web service provider to have to laboriously specify the parameters for the needs of potentially thousands of clients and their employees.
US patent application number US2004/0068586 to Xie describes a Web service broker, used as a service proxy, that provides for the automatic conversion of message formats communications between a Web service and its client businesses' applications. But that method does not address the broad area of communications parameters, with interface parameters based on context parameters, that the present invention covers.
World Intellectual Property Organization patent application number WO 2004/040097 A1 to Butterworth describes a method of supplementing operations performed by a Web service through an autonomous software agent to facilitate the examination of the content of messages, the modification of the content of messages, the rerouting of messages, and the analysis of the content of messages. But that method also does not address the broad area of communications parameters, with interface parameters based on context parameters, that the present invention covers.
Therefore there is a need for a method and apparatus that provides a more automatic, and thus non-intrusive, method for supplying the desired communications parameters used for communications between a Web service provider and its client businesses dynamically, with interface parameters based on context parameters. Such a method and apparatus eliminates the need for time-consuming and expensive programming by the client businesses or the Web service provider.